package Map.project;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/*
    Map接口：
    特点：1.存储键值对  2.键不能重复，值可以  3.无序
 */
public class PracticeMain {
    public static void main(String[] args) {
        //1.创建Map集合
        Map<String,String> map = new HashMap<>();
        //2.添加元素
        map.put("cn","中国");
        map.put("jp","日本");
        map.put("ca","加拿大");
        map.put("us","美国");
        map.put("cn","zhongguo");//相同的键会发生覆盖，对应的值覆盖之前的键值
        System.out.println(map.size());
        System.out.println(map.toString());

        //3.删除
        map.remove("ca","加拿大");

        //4.遍历：1.使用：keySet（）方法，返回的是set集合(将键给到了set集合)，所以可以用增强for，或者Iterator迭代器遍历set集合
         Set<String> keyset = map.keySet();
        Iterator iterator = keyset.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
        /*
            两种方法的区别：
            keySet（）方法：将键值对的键（key）返回给了set集合
            entrySet（）方法：将每一个键值对封装为一个个Entry（一个Entry就是一个键值对），将每一个Entry返回给set集合（优选）
         */

        //遍历第二种方式：使用entrySet（）方法
        Set<Map.Entry<String,String>> entries = map.entrySet();
        Iterator iter = entries.iterator();
        while (iter.hasNext()){
            System.out.println(iter.next());
        }

        //5.判断：
        System.out.println(map.containsKey("jp"));

    }
}
